package com.aerozhonghuan.archive.mapper;

import com.aerozhonghuan.archive.entity.MigrationConfig;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * MigrationConfigMapper 接口用于操作归档数据库中迁移配置记录
 *
 */
@Mapper
public interface ArchiveMigrationConfigMapper {

    /**
     * 查询所有启用状态的迁移配置记录
     *
     * @return 启用的迁移配置记录列表，如果不存在则返回空列表
     */
    List<MigrationConfig> getAllEnabled();

    /**
     * 更新指定配置记录的 last_create_time 字段为传入的 maxTime 值
     *
     * @param id      迁移配置记录的主键 ID
     * @param maxTime 要更新为的时间值
     * @return 更新成功的记录数
     */
    int updateLastCreateTime(@Param("id") Long id, @Param("maxTime") Date maxTime);

    /**
     * 更新指定配置记录的 last_create_time 字段为传入的新时间值
     *
     * @param id      迁移配置记录的主键 ID
     * @param newTime 要更新的新时间
     * @return 更新成功的记录数
     */
    int updateLastCreateTimeByNewTime(@Param("id") Long id, @Param("newTime") Date newTime);

    /**
     * 根据配置记录的 ID 查询对应的 MigrationConfig 对象
     *
     * @param id 配置记录的 ID
     * @return id对应的对象
     */
    MigrationConfig getById(@Param("id") Long id);
}
